﻿using System;
using System.Windows.Forms;
using EntitiesAndMappings.Entities;
using ProyectoSelva.Forms.Mantenimiento;
using ProyectoSelva.Forms.Consultas;
using ProyectoSelva.Const;
using System.Drawing;
using ProyectoSelva.Forms.Operaciones;

namespace ProyectoSelva.Forms
{
    public partial class FrmInicioSelva : Form
    {

        public static Usuario Usuario { set; get; }

        public FrmInicioSelva()
        {
            InitializeComponent();
            //Para maximizar de forma manual.
            this.Location = new Point(0, 0);
            this.Size = Screen.PrimaryScreen.WorkingArea.Size;

            mnuPrincipal.Visible = false;
            var fmrLogin = new FrmLogin {MdiParent = this};
            fmrLogin.Show();

        }

        public MenuStrip MnuPrincipal
        {
            get { return mnuPrincipal; }
        }

        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void trabajadorToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmMantenimientoTrabajador.Activo==null){
                var form = new FrmMantenimientoTrabajador {Visible = true, MdiParent = this};
            }
            else
            {
                FrmMantenimientoTrabajador.Activo.Focus();
            }
        }

        private void loteToolStripMenuItem_Click(object sender, EventArgs e)
        {

            if (FrmMantenimientoEntidadGenericaHelper<Lote>.Activo == null)
            {
                var form = new FrmMantenimientoEntidadGenericaHelper<Lote> { MdiParent = this }; ;
                form.CadenaDescriptivaEntidad = Maestro.LOTE_CADENA;
                form.Visible = true;

            }
            else
            {
                FrmMantenimientoEntidadGenericaHelper<Lote>.Activo.Focus();
            }
        }

        private void tipoDeDocumentoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmMantenimientoEntidadGenericaHelper<TipoDocumento>.Activo == null)
            {
                var form = new FrmMantenimientoEntidadGenericaHelper<TipoDocumento> { MdiParent = this }; ;
                form.CadenaDescriptivaEntidad = Maestro.TIPO_DE_DOCUMENTO_CADENA;
                form.Visible = true;

            }
            else
            {
                FrmMantenimientoEntidadGenericaHelper<TipoDocumento>.Activo.Focus();
            }

           

        }

        private void empresaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmMantenimientoEntidadGenericaHelper<Empresa>.Activo == null)
            {
                var form = new FrmMantenimientoEntidadGenericaHelper<Empresa> { MdiParent = this }; ;
                form.CadenaDescriptivaEntidad = Maestro.EMPRESA_CADENA;
                form.Visible = true;

            }
            else
            {
                FrmMantenimientoEntidadGenericaHelper<Empresa>.Activo.Focus();
            }

            
        }

        private void proyectoToolStripMenuItem_Click(object sender, EventArgs e)
        {
           if (FrmMantenimientoEntidadGenericaHelper<Proyecto>.Activo == null)
            {
                var form = new FrmMantenimientoEntidadGenericaHelper<Proyecto> { MdiParent = this }; ;
                form.CadenaDescriptivaEntidad = Maestro.PROYECTO_CADENA;
                form.Visible = true;

            }
            else
            {
                FrmMantenimientoEntidadGenericaHelper<Proyecto>.Activo.Focus();
            }
        }

        private void tipoDeCargoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmMantenimientoEntidadGenericaHelper<TipoCargo>.Activo == null)
            {
                var form = new FrmMantenimientoEntidadGenericaHelper<TipoCargo> { MdiParent = this }; ;
                form.CadenaDescriptivaEntidad = Maestro.TIPO_DE_CARGO_CADENA;
                form.Visible = true;

            }
            else
            {
                FrmMantenimientoEntidadGenericaHelper<TipoCargo>.Activo.Focus();
            }

        }

        private void nivelDeEstudiosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmMantenimientoEntidadGenericaHelper<NivelEstudios>.Activo == null)
            {
                var form = new FrmMantenimientoEntidadGenericaHelper<NivelEstudios> { MdiParent = this }; ;
                form.CadenaDescriptivaEntidad = Maestro.NIVEL_DE_ESTUDIOS_CADENA;
                form.Visible = true;

            }
            else
            {
                FrmMantenimientoEntidadGenericaHelper<NivelEstudios>.Activo.Focus();
            }
          
        }

        private void motivosDeLiquidaciónToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmMantenimientoEntidadGenericaHelper<MotivoLiquidacion>.Activo == null)
            {
                var form = new FrmMantenimientoEntidadGenericaHelper<MotivoLiquidacion> { MdiParent = this }; ;
                form.CadenaDescriptivaEntidad = Maestro.MOTIVOS_DE_LIQUIDACION_CADENA;
                form.Visible = true;

            }
            else
            {
                FrmMantenimientoEntidadGenericaHelper<MotivoLiquidacion>.Activo.Focus();
            }
        }

        private void estatusDelContratoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmMantenimientoEntidadGenericaHelper<StatusContrato>.Activo == null)
            {
                var form = new FrmMantenimientoEntidadGenericaHelper<StatusContrato> { MdiParent = this }; ;
                form.CadenaDescriptivaEntidad = Maestro.STATUS_DE_CONTRATO_CADENA;
                form.Visible = true;

            }
            else
            {
                FrmMantenimientoEntidadGenericaHelper<StatusContrato>.Activo.Focus();
            }
        }

        private void personalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmConsultaPersonal.Activo == null)
            {
                var form = new FrmConsultaPersonal { Visible = true, MdiParent = this };
            }
            else
            {
                FrmConsultaPersonal.Activo.Focus();
            }
        }

        private void registroDeContratoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmMantenimientoContrato.Activo == null)
            {
                var form = new FrmMantenimientoContrato { Visible = true, MdiParent = this };
            }
            else
            {
                FrmMantenimientoContrato.Activo.Focus();
            }

        }

        private void renovaciónDeContratoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmBusquedaRenovacionContrato.Activo == null)
            {
                new FrmBusquedaRenovacionContrato {Visible = true, MdiParent = this};
            }
            else
            {
                FrmBusquedaRenovacionContrato.Activo.Focus();
            }
        }

        private void seguimientoDePersonalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmBusquedaSeguimientoPersonal.Activo == null)
            {
                new FrmBusquedaSeguimientoPersonal { Visible = true, MdiParent = this };
            }
            else
            {
                FrmBusquedaSeguimientoPersonal.Activo.Focus();
            }
        }

        private void contratosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmConsultaContratos.Activo == null)
            {
                new FrmConsultaContratos { Visible = true, MdiParent = this };
            }
            else
            {
                FrmConsultaContratos.Activo.Focus();
            }
        }

        private void renovacionesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (FrmConsultaRenovaciones.Activo == null)
            {
                new FrmConsultaRenovaciones { Visible = true, MdiParent = this };
            }
            else
            {
                FrmConsultaRenovaciones.Activo.Focus();
            }
        }

        private void seguimientoDePersonalToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (FrmConsultaSeguimiento.Activo == null)
            {
                new FrmConsultaSeguimiento { Visible = true, MdiParent = this };
            }
            else
            {
                FrmConsultaSeguimiento.Activo.Focus();
            }
        }

        public void AsignarPermisos()
        {
            procesosToolStripMenuItem.Visible = Perfil.TIPO1.Equals(Usuario.Perfil) ||
                                                Perfil.TIPO3.Equals(Usuario.Perfil) ||
                                                Perfil.TIPO4.Equals(Usuario.Perfil) ||
                                                Perfil.TIPO5.Equals(Usuario.Perfil);
            mantenimientoToolStripMenuItem.Visible = Perfil.TIPO1.Equals(Usuario.Perfil) ||
                                                Perfil.TIPO2.Equals(Usuario.Perfil) ||
                                                Perfil.TIPO3.Equals(Usuario.Perfil) ||
                                                Perfil.TIPO4.Equals(Usuario.Perfil) ||
                                                Perfil.TIPO6.Equals(Usuario.Perfil)
                                                ;
            if (procesosToolStripMenuItem.Visible)
            {
                contratosToolStripMenuItem.Visible = Perfil.TIPO3.Equals(Usuario.Perfil) ||
                                                Perfil.TIPO4.Equals(Usuario.Perfil);
                seguimientoDePersonalToolStripMenuItem.Visible = Perfil.TIPO3.Equals(Usuario.Perfil) ||
                                                Perfil.TIPO5.Equals(Usuario.Perfil);
                renovacionDeContratoToolStripMenuItem.Visible = Perfil.TIPO1.Equals(Usuario.Perfil) ||
                                                Perfil.TIPO3.Equals(Usuario.Perfil);
            }

            personalToolStripMenuItem.Visible = !Perfil.TIPO5.Equals(Usuario.Perfil);
            registroDeContratoToolStripMenuItem.Visible = !Perfil.TIPO5.Equals(Usuario.Perfil);
            renovacionesToolStripMenuItem.Visible = !Perfil.TIPO5.Equals(Usuario.Perfil);
        }
    }
}